// Task.hpp
#pragma once
#include <iostream>
#include <vector>
using namespace std;
using func_t = void (*)(void);
// typedef void(*fun_t)(void);

// 假定为任务
void DealMySQL()
{
    cerr << "正在处理MySQL..." << endl;
}

void DealRequest()
{
    cerr << "正在处理网络请求..." << endl;
}

void DealLink()
{
    cerr << "正在处理链接..." << endl;
}

#define MYSQL 0
#define Request 1
#define Link 2

class Task
{
public:
    Task()
    {
        // 构造时，将任务都存入
        _task.push_back(DealMySQL);
        _task.push_back(DealRequest);
        _task.push_back(DealLink);
    }

    void Execute(int command)
    {
        // 执行任务
        if (command >= 0 && command < _task.size())
        {
            _task[command](); // 调用函数
        }
    }

    vector<func_t> _task;
};